package cn.iocoder.yudao.module.cmt.dal.dataobject.service;

import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * ServiceRequest DO
 *
 * @author 芋道源码
 */
@TableName("cmt_service_request")
@KeySequence("cmt_service_request_seq")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ServiceRequestDO extends BaseDO {

    /**
     * ID
     */
    @TableId
    private Long id;
    /**
     * 社区ID
     */
    private Long communityId;
    /**
     * 社区名称
     */
    @TableField(exist = false)
    private String communityName;
    /**
     * 商户ID(服务提供商户)
     */
    private Long merchantId;
    /**
     * 商户名称
     */
    @TableField(exist = false)
    private String merchantName;
    /**
     * 申请编号
     */
    private String requestNo;
    /**
     * 服务分类ID
     */
    private Long categoryId;
    /**
     * 分类名称
     */
    @TableField(exist = false)
    private String categoryName;
    /**
     * 申请会员ID
     */
    private Long userId;
    /**
     * 受益人员ID
     */
    private Long personId;
    /**
     * 服务标题
     */
    private String title;
    /**
     * 服务描述
     */
    private String description;
    /**
     * 图片(JSON数组)
     */
    private String images;
    /**
     * 视频(JSON数组)
     */
    private String videos;
    /**
     * 联系人
     */
    private String contactName;
    /**
     * 联系电话
     */
    private String contactPhone;
    /**
     * 服务地址
     */
    private String serviceAddress;
    /**
     * 期望服务日期
     */
    private LocalDateTime expectedDate;
    /**
     * 期望服务时间
     */
    private String expectedTime;
    /**
     * 紧急程度：1普通 2紧急 3非常紧急
     */
    private Integer urgencyLevel;
    /**
     * 状态：0待接单 1已派单 2服务中 3已完成 4已取消 5已评价
     */
    private Integer requestStatus;
    /**
     * 接单志愿者会员ID
     */
    private Long volunteerUserId;
    /**
     * 接单志愿者人员ID
     */
    private Long volunteerPersonId;
    /**
     * 接单时间
     */
    private LocalDateTime acceptTime;
    /**
     * 服务开始时间
     */
    private LocalDateTime startTime;
    /**
     * 服务完成时间
     */
    private LocalDateTime completeTime;
    /**
     * 服务时长(小时)
     */
    private BigDecimal serviceDuration;
    /**
     * 积分奖励
     */
    private Integer pointReward;
    /**
     * 经验奖励
     */
    private Integer experienceReward;

}
